#include <mathematics/Ring.h>

namespace ne
{
    Ring::Ring()
        : center(0.0f),
          insideRadius(0.5f),
          outsideRadius(1.0f),
          beginAngle(0.0f),
          endAngle(Math::CIRCLE)
    {
    }

    Ring::Ring(const Vector2 &v, const real iR, const real oR, const real b, const real e)
        : center(v),
          insideRadius(iR),
          outsideRadius(oR),
          beginAngle(b),
          endAngle(e)
    {
    }

    Ring::Ring(const Ring &r)
        : center(r.center),
          insideRadius(r.insideRadius),
          outsideRadius(r.outsideRadius),
          beginAngle(r.beginAngle),
          endAngle(r.endAngle)
    {
    }

    Ring& Ring::operator = (const Ring &r)
    {
        center = r.center;
        insideRadius = r.insideRadius;
        outsideRadius = r.outsideRadius;
        beginAngle = r.beginAngle;
        endAngle = r.endAngle;
        return *this;
    }

    void Ring::redefine(const Vector2 &v, const real iR, const real oR, const real b, const real e)
    {
        center = v;
        insideRadius = iR;
        outsideRadius = oR;
        beginAngle = b;
        endAngle = e;
    }

    GeometryClass Ring::getClass() const
    {
        return GC_RING;
    }

    Ring::~Ring()
    {
    }
}
